home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok31.lha / SysRequest / SysRequest.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  78 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.     SysRequest.def
  3.     :Contents.      Leitet System-Requester und eigene auf eigenen Screen um
  4.     :Author.      Bernd Preusing
  5.     :Address.      Gerhardstr. 16  D-2200 Elmshorn
  6.     :Phone.      04121/22486
  7.     :Copyright.      Public Domain
  8.     :Language.      Modula-2
  9.     :Translator.  M2Amiga V3.2e
  10.     :History.      V1.0 08-Oct-89 Bernd Preusing
  11.     :Bugs.      none
  12. ---------------------------------------------------------------------------*)
  13. IMPLEMENTATION MODULE SysRequest;
  14.  
  15. FROM SYSTEM    IMPORT    ADR, CAST, ADDRESS, INLINE;
  16. IMPORT Arts, Intuition, Exec, Dos;
  17.  
  18. VAR
  19.   MyProcess: Dos.ProcessPtr;
  20.   OldWindow: Intuition.WindowPtr;
  21.  
  22. (* $R- $V- $F- *)
  23.  
  24. PROCEDURE SetReqWindow(Win:Intuition.WindowPtr);
  25. BEGIN
  26.   MyProcess^.windowPtr:=Win;
  27. END SetReqWindow;
  28.  
  29. (* Sheiß Arts Requester geht nur auf WBScreen!! *)
  30. PROCEDURE Requester(header,body,pos,neg:ADDRESS):BOOLEAN;
  31.  
  32.   PROCEDURE DummyText; (* $E- *)
  33.   BEGIN INLINE( 0001H, 0100H, 0,0, 0,0, 0,0, 0,0)
  34.   END DummyText;
  35.  
  36.   PROCEDURE InitIText(VAR i:Intuition.IntuiText; left,top:INTEGER; adr:ADDRESS);
  37.   BEGIN
  38.     Exec.CopyMem(ADR(DummyText),ADR(i),SIZE(i));
  39.     WITH i DO
  40.       leftEdge:=left; topEdge:=top; iText:=adr
  41.     END;
  42.   END InitIText;
  43.  
  44. VAR
  45.   BodyText1,BodyText2, NegText, PosText: Intuition.IntuiText;
  46.   PosPtr: Intuition.IntuiTextPtr;
  47.   Height: INTEGER;
  48. BEGIN
  49.   InitIText(BodyText1,12,5,header);
  50.   Height:=54;
  51.   IF body#NIL THEN
  52.     InitIText(BodyText2,12,16,body);
  53.     BodyText1.nextText:=ADR(BodyText2);
  54.     Height:=65;
  55.   END;
  56.   InitIText(NegText,6,3,neg);
  57.   IF pos=NIL THEN
  58.     PosPtr:=NIL
  59.   ELSE
  60.     InitIText(PosText,6,3,pos);
  61.     PosPtr:=ADR(PosText);
  62.   END;
  63.   RETURN Intuition.AutoRequest(MyProcess^.windowPtr,ADR(BodyText1),PosPtr,
  64.           ADR(NegText),
  65.           Intuition.IDCMPFlagSet{},Intuition.IDCMPFlagSet{},320,Height)
  66. END Requester;
  67.  
  68. PROCEDURE ClearReqWindow;
  69. BEGIN
  70.   MyProcess^.windowPtr:=OldWindow;
  71. END ClearReqWindow;
  72.  
  73. BEGIN
  74.   MyProcess:=CAST(Dos.ProcessPtr,Exec.FindTask(NIL));
  75.   OldWindow:=MyProcess^.windowPtr;
  76.   Arts.TermProcedure(ClearReqWindow);
  77. END SysRequest.mod
  78.